// vuex的配置文件 里面放着公用的数据
import Vuex from 'vuex'
import Vue from 'vue'
// 使用中间件 
Vue.use(Vuex)

import mutations from './mutations'
import actions from './actions'
// 导入各个模块
import user from './modules/user'
import goods from './modules/goods'
// 创建一个store，用来存储数据
const store = new Vuex.Store({
    state: { // 类似组件中的data 存放数据 初始化数据.ssot 唯一数据源 数据都从state而来
        age: 19,
        isLogin: true,
        money: 0,
        list: []
    },
    getters: { // 类似组件中的computed 加工state中的原始数据 得到了新的数据 也会依赖缓存，减少计算次数
        nextAge(state) {
            return state.age + 1
        }
    },
    mutations,
    actions,
    // 当内容特别多时，除了拆分走mutation和action以外
    // 另一种拆分方式 是根据业务划分模块
    modules: {
        // 模块名：模块内容
        user,
        goods
    }
})

export default store;